package com.union.official.common.util;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.api.R;
import com.union.official.common.entity.PageVO;
import com.union.official.common.entity.QueryVO;
import com.union.official.common.enums.SystemCodeEnum;

import java.util.List;

/**
 * 分页响应工具类
 *
 * @author 杨 强
 * @package com.union.official.common.util
 * @createTime 2024-03-07 10:24
 */
public class PageVoUtils {

    public static <T> PageVO<T> toPageVO(IPage<T> page, QueryVO query) {
        PageVO<T> pageVo = new PageVO<>();
        pageVo.setTotal(Long.valueOf(page.getTotal()).intValue());
        pageVo.setRows(page.getRecords());
        pageVo.setCode(SystemCodeEnum.SUCCESS.getCode());
        pageVo.setMsg(SystemCodeEnum.SUCCESS.getMsg());
        pageVo.setPageNum(query.getPageNum());
        pageVo.setPageSize(query.getPageSize());
        return pageVo;
    }

    public static <R, T> PageVO<T> toPageVO(IPage<R> page, List<T> list, QueryVO query) {
        PageVO<T> pageVo = new PageVO<>();
        pageVo.setTotal(Long.valueOf(page.getTotal()).intValue());
        pageVo.setRows(list);
        pageVo.setCode(SystemCodeEnum.SUCCESS.getCode());
        pageVo.setMsg(SystemCodeEnum.SUCCESS.getMsg());
        pageVo.setPageNum(query.getPageNum());
        pageVo.setPageSize(query.getPageSize());
        return pageVo;
    }
}
